perm filename SUIO.MAC[X,ALS]1 blob sn#051302 filedate 1974-01-09 generic text, type T, neo UTF8
00100	;	SUBROUTINE SETDA(JFN,SPEED)
00200	;OR	SUBROUTINE SETDA(JFN)
00300	;OR	SUBROUTINE SETDA
00400	TITLE	SETDA
00500	ENTRY	SETDA
00600	ENTRY	DAOUT
00700	SETDA:	0
00800		HRRZI	1,0
00900		DPB	1,[POINT 2,OUTBIT,26]
01000		HLRZ	1,0(16)		;IS THERE A JFN?
01100		ANDI	1,777000
01200		CAIE	1,320000
01300		JRST	NOJFN
01400		HRLZ	1,@0(16)
01500		LSH	1,5
01600		IORM	1,OPN
01700		IORM	1,OUTPT
01800		HLRZ	1,1(16)		;IS THERE A SPEED?
01900		ANDI	1,777000
02000		CAIE	1,320000
02100		JRST	NOSPED
02200		MOVE	1,@1(16)	;GET SPEED
02300		CAIL	1,5
02400	NOJFN:	HRRZI	1,1
02500		CAIA	0,0
02600	NOSPED:	HRRZI	1,1
02700	GOON:	DPB	1,[POINT 3,OUTBIT,32]
02800	OPN:	OPEN	0,[117 	;MODE
02900	         	'AD    '        ;DEVICE NAME
03000	 		0]              ;NO BUFFER HEADERS
03100	
03200		TTCALL	3,MSG
03300		JRA	16,0(16)
03400	MSG:	ASCIZ/	CANNOT OPEN DA /
     

00100	;	SUBROUTINE DAOUT(NUM,BUF)
00200	OUTWC:	0
00300		3650			;MAGIC BITS FOR 136.
00400	OUTBIT: 4000			;BITS FOR D-A
00500		BLOCK	2
00600	DAOUT:	0
00700		HRRZ	1,1(16)		;GET BUF POINTER
00800		SOJ	1,1		;NOW WE HAVE BUF-1
00900		HRRZM	1,OUTWC		;NOW WE HAVE 0,BUF-1
01000		MOVN	1,@0(16)	;GET -NUM
01100		HRLM	1,OUTWC		;NOW WE HAVE -NUM,BUF-1
01200	OUTPT:	OUTPUT	0,OUTWC
01300		JRA	16,2(16)
01400		PRGEND
     

00100	;	SUBROUTINE LOCK
00200	;	SUBROUTINE UNLOCK
00300	TITLE	LOCK
00400	ENTRY	LOCK
00500	ENTRY	UNLOCK
00600	LOCK:	0
00700		CALLI	400076
00800		JRA	16,0(16)
00900	UNLOCK:	0
01000		CALLI	400077
01100		JRA	16,0(16)
01200		PRGEND
     

00100	TITLE	MAGSTF
00200	;	SUBROUTINE SETMAG(NUM)
00300	;	SUBROUTINE REWIND
00400	;	SUBROUTINE GMAGRC(ARRAY,LENGTH)
00500	;	SUBROUTINE PMAGRC(ARRAY,LENGTH)
00600	;	SUBROUTINE MCLOSE
00700	;	SUBROUTINE RELMAG
00800	;	SUBROUTINE NEXFIL
00900	;	SUBROUTINE PREFIL
01000	ENTRY	SETMAG
01100	ENTRY	REWIND
01200	ENTRY	GMAGRC
01300	ENTRY	PMAGRC
01400	ENTRY	MCLOSE
01500	ENTRY	RELMAG
01600	ENTRY	NEXFIL
01700	ENTRY	PREFIL
01800	TEMP:	0
01900	ADR:	BLOCK	2
02000	MT1:	SIXBIT/MTA1/
02100	MT0:	SIXBIT/MTA0/
     

00100	SETMAG:	0
00200		MOVEM	0,TEMP
00300		MOVE	0,MT0
00400		MOVEM	0,MGTAPE
00500		MOVE	0,@0(16)
00600		JUMPE	0,.+3
00700		MOVE	0,MT1
00800		MOVEM	0,MGTAPE
00900		INIT	5,17
01000	MGTAPE:	0
01100		0
01200		JRST	.+3
01300		MOVE	0,TEMP
01400		JRA	16,0(16)
01500		TTCALL	3,SETERR
01600		HALT
01700	SETERR:	ASCIZ	/
01800	ERROR IN SETMAG - HALTING
01900	/
02000	REWIND:	0
02100		MTAPE	5,1
02200		JFCL
02300		MTAPE	5,0
02400		JRA	16,0(16)
     

00100	GMAGRC:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR
00500		HRRZ	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR
00800		IN	5,ADR
00900		CAIA	1,0
01000		TTCALL	3,RERR
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	RERR:	ASCIZ	/
01400	ERROR IN MAGTAPE READING - CONTINUING
01500	/
     

00100	PMAGRC:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR
00500		HRRZ	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR
00800		OUT	5,ADR
00900		CAIA	1,0
01000		TTCALL	3,WERR
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	WERR:	ASCIZ	/
01400	ERROR IN MAGTAPE WRITING - CONTINUING
01500	/
     

00100	MCLOSE:	0
00200		CLOSE	5,0
00300		JRA	16,0(16)
00400	RELMAG:	0
00500		RELEASE	5,0
00600		JRA	16,0(16)
00700	NEXFIL:	0
00800		MTAPE	5,16
00900		MTAPE	5,0
01000		JRA	16,0(16)
01100	PREFIL:	0
01200		MTAPE	5,17
01300		MTAPE	5,0
01400		MTAPE	5,17
01500		MTAPE	5,0
01600		STATO	5,4000
01700		MTAPE	5,16
01800		MTAPE	5,0
01900		JRA	16,0(16)
02000		PRGEND
     

00100	TITLE	XGPSTF
00200	;	SUBROUTINE SETXGP
00300	ENTRY	SETXGP
00400	;	SUBROUTINE SETXG2
00500	ENTRY	SETXG2
00600	;	SUBROUTINE OUTXGP(BUFFER,NUM)
00700	ENTRY	OUTXGP
00800	;	SUBROUTINE OUTXG1(BUFFER,NUM)
00900	ENTRY	OUTXG1
01000	;	SUBROUTINE OUTXG2(BUFFER,NUM)
01100	ENTRY	OUTXG2
01200	;	SUBROUTINE OUTXG3(BUFFER,NUM)
01300	ENTRY	OUTXG3
01400	;	SUBROUTINE SETMRK(WORD)
01500	ENTRY	SETMRK
01600	;	SUBROUTINE SETLNS(WORD,LNSKIP)
01700	ENTRY	SETLNS
01800	;	SUBROUTINE SETCLS(WORD,COLSKP)
01900	ENTRY	SETCLS
02000	;	SUBROUTINE SETDCT(WORD,NDATA)
02100	ENTRY	SETDCT
02200	;	SUBROUTINE RELXGP
02300	ENTRY	RELXGP
02400	TEMP:	0
02500	ADR:	0
02600		0
02700	ADR1:	0
02800		0
02900	ADR2:	0
03000		0
03100	ADR3:	0
03200		0
03300	SETXGP:	0
03400		INIT	4,117
03500		SIXBIT	/XGP/
03600		0
03700		JRST	.-3
03800		JRA	16,0(16)
03900	SETXG2:	0
04000		INIT	4,17
04100		SIXBIT	/XGP/
04200		0
04300		JRST	.-3
04400		JRA	16,0(16)
     

00100	OUTXGP:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR
00800		OUT	4,ADR
00900		CAIA	0,0
01000		JRST	FAIL
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL:	TTCALL	3,MES
01400		JRST	.-3
01500	MES:	ASCIZ	/
01600	FAILURE IN OUTXGP
01700	/
     

00100	OUTXG1:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR1
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR1
00800		OUT	4,ADR1
00900		CAIA	0,0
01000		JRST	FAIL1
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL1:	TTCALL	3,MES1
01400		JRST	.-3
01500	MES1:	ASCIZ	/
01600	FAILURE IN OUTXG1
01700	/
     

00100	OUTXG2:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR2
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR2
00800		OUT	4,ADR2
00900		CAIA	0,0
01000		JRST	FAIL2
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL2:	TTCALL	3,MES2
01400		JRST	.-3
01500	MES2:	ASCIZ	/
01600	FAILURE IN OUTXG2
01700	/
     

00100	OUTXG3:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR3
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR3
00800		OUT	4,ADR3
00900		CAIA	0,0
01000		JRST	FAIL3
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL3:	TTCALL	3,MES3
01400		JRST	.-3
01500	MES3:	ASCIZ	/
01600	FAILURE IN OUTXG3
01700	/
     

00100	SETMRK:	0
00200		MOVEM	1,TEMP
00300		HRLZI	1,400000
00400		IORM	1,@0(16)
00500		MOVE	1,TEMP
00600		JRA	16,1(16)
00700	SETLNS:	0
00800		MOVEM	1,TEMP
00900		MOVE	1,@1(16)
01000		ANDI	1,3777
01100		HRLZ	1,1
01200		LSH	1,6
01300		IORM	1,@0(16)
01400		MOVE	1,TEMP
01500		JRA	16,2(16)
01600	SETCLS:	0
01700		MOVEM	1,TEMP
01800		MOVE	1,@1(16)
01900		ANDI	1,7777
02000		LSH	1,14
02100		IORM	1,@0(16)
02200		MOVE	1,TEMP
02300		JRA	16,2(16)
02400	SETDCT:	0
02500		MOVEM	1,TEMP
02600		MOVE	1,@1(16)
02700		ANDI	1,77
02800		IORM	1,@0(16)
02900		MOVE	1,TEMP
03000		JRA	16,2(16)
03100	RELXGP:	0
03200		RELEAS	4,0
03300		JRA	16,0(16)
03400		PRGEND
     

00100		TITLE	NULL
00200		ENTRY	NULL
00300	NULL:	0
00400		JRA	16,0(16)
00500		END